/**
 */
package org.mro.grib.model.files.secondEdition.grids.impl;

import java.nio.ByteBuffer;

import org.eclipse.emf.common.notify.Notification;

import org.eclipse.emf.ecore.EClass;

import org.eclipse.emf.ecore.impl.ENotificationImpl;

import org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate34;
import org.mro.grib.model.files.secondEdition.grids.GridsPackage;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Grid Definition Template34</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate34Impl#getNumberOfPointsAlongAParallel <em>Number Of Points Along AParallel</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate34Impl#getNumberOfPointsAlongAMeridian <em>Number Of Points Along AMeridian</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate34Impl#getBasicAngleOfTheInitialProductionDomain <em>Basic Angle Of The Initial Production Domain</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate34Impl#getSubdivisionsOfBasicAngle <em>Subdivisions Of Basic Angle</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate34Impl#getResolutionAndComponentFlags <em>Resolution And Component Flags</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate34Impl#getScanningMode <em>Scanning Mode</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate34Impl#getListOfLongitudeOffset <em>List Of Longitude Offset</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate34Impl#getListOfLatitudeOffset <em>List Of Latitude Offset</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class GridDefinitionTemplate34Impl extends EarthShapeGridDefinitionImpl implements GridDefinitionTemplate34 {
	/**
	 * The default value of the '{@link #getNumberOfPointsAlongAParallel() <em>Number Of Points Along AParallel</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfPointsAlongAParallel()
	 * @generated
	 * @ordered
	 */
	protected static final int NUMBER_OF_POINTS_ALONG_APARALLEL_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getNumberOfPointsAlongAParallel() <em>Number Of Points Along AParallel</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfPointsAlongAParallel()
	 * @generated
	 * @ordered
	 */
	protected int numberOfPointsAlongAParallel = NUMBER_OF_POINTS_ALONG_APARALLEL_EDEFAULT;

	/**
	 * The default value of the '{@link #getNumberOfPointsAlongAMeridian() <em>Number Of Points Along AMeridian</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfPointsAlongAMeridian()
	 * @generated
	 * @ordered
	 */
	protected static final int NUMBER_OF_POINTS_ALONG_AMERIDIAN_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getNumberOfPointsAlongAMeridian() <em>Number Of Points Along AMeridian</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfPointsAlongAMeridian()
	 * @generated
	 * @ordered
	 */
	protected int numberOfPointsAlongAMeridian = NUMBER_OF_POINTS_ALONG_AMERIDIAN_EDEFAULT;

	/**
	 * The default value of the '{@link #getBasicAngleOfTheInitialProductionDomain() <em>Basic Angle Of The Initial Production Domain</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getBasicAngleOfTheInitialProductionDomain()
	 * @generated
	 * @ordered
	 */
	protected static final int BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getBasicAngleOfTheInitialProductionDomain() <em>Basic Angle Of The Initial Production Domain</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getBasicAngleOfTheInitialProductionDomain()
	 * @generated
	 * @ordered
	 */
	protected int basicAngleOfTheInitialProductionDomain = BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN_EDEFAULT;

	/**
	 * The default value of the '{@link #getSubdivisionsOfBasicAngle() <em>Subdivisions Of Basic Angle</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSubdivisionsOfBasicAngle()
	 * @generated
	 * @ordered
	 */
	protected static final int SUBDIVISIONS_OF_BASIC_ANGLE_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getSubdivisionsOfBasicAngle() <em>Subdivisions Of Basic Angle</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSubdivisionsOfBasicAngle()
	 * @generated
	 * @ordered
	 */
	protected int subdivisionsOfBasicAngle = SUBDIVISIONS_OF_BASIC_ANGLE_EDEFAULT;

	/**
	 * The default value of the '{@link #getResolutionAndComponentFlags() <em>Resolution And Component Flags</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getResolutionAndComponentFlags()
	 * @generated
	 * @ordered
	 */
	protected static final byte RESOLUTION_AND_COMPONENT_FLAGS_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getResolutionAndComponentFlags() <em>Resolution And Component Flags</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getResolutionAndComponentFlags()
	 * @generated
	 * @ordered
	 */
	protected byte resolutionAndComponentFlags = RESOLUTION_AND_COMPONENT_FLAGS_EDEFAULT;

	/**
	 * The default value of the '{@link #getScanningMode() <em>Scanning Mode</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScanningMode()
	 * @generated
	 * @ordered
	 */
	protected static final byte SCANNING_MODE_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getScanningMode() <em>Scanning Mode</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScanningMode()
	 * @generated
	 * @ordered
	 */
	protected byte scanningMode = SCANNING_MODE_EDEFAULT;

	/**
	 * The default value of the '{@link #getListOfLongitudeOffset() <em>List Of Longitude Offset</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getListOfLongitudeOffset()
	 * @generated
	 * @ordered
	 */
	protected static final long LIST_OF_LONGITUDE_OFFSET_EDEFAULT = 0L;

	/**
	 * The cached value of the '{@link #getListOfLongitudeOffset() <em>List Of Longitude Offset</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getListOfLongitudeOffset()
	 * @generated
	 * @ordered
	 */
	protected long listOfLongitudeOffset = LIST_OF_LONGITUDE_OFFSET_EDEFAULT;

	/**
	 * The default value of the '{@link #getListOfLatitudeOffset() <em>List Of Latitude Offset</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getListOfLatitudeOffset()
	 * @generated
	 * @ordered
	 */
	protected static final long LIST_OF_LATITUDE_OFFSET_EDEFAULT = 0L;

	/**
	 * The cached value of the '{@link #getListOfLatitudeOffset() <em>List Of Latitude Offset</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getListOfLatitudeOffset()
	 * @generated
	 * @ordered
	 */
	protected long listOfLatitudeOffset = LIST_OF_LATITUDE_OFFSET_EDEFAULT;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected GridDefinitionTemplate34Impl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return GridsPackage.Literals.GRID_DEFINITION_TEMPLATE34;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getNumberOfPointsAlongAParallel() {
		return numberOfPointsAlongAParallel;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNumberOfPointsAlongAParallel(int newNumberOfPointsAlongAParallel) {
		int oldNumberOfPointsAlongAParallel = numberOfPointsAlongAParallel;
		numberOfPointsAlongAParallel = newNumberOfPointsAlongAParallel;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE34__NUMBER_OF_POINTS_ALONG_APARALLEL, oldNumberOfPointsAlongAParallel, numberOfPointsAlongAParallel));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getNumberOfPointsAlongAMeridian() {
		return numberOfPointsAlongAMeridian;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNumberOfPointsAlongAMeridian(int newNumberOfPointsAlongAMeridian) {
		int oldNumberOfPointsAlongAMeridian = numberOfPointsAlongAMeridian;
		numberOfPointsAlongAMeridian = newNumberOfPointsAlongAMeridian;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE34__NUMBER_OF_POINTS_ALONG_AMERIDIAN, oldNumberOfPointsAlongAMeridian, numberOfPointsAlongAMeridian));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getBasicAngleOfTheInitialProductionDomain() {
		return basicAngleOfTheInitialProductionDomain;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setBasicAngleOfTheInitialProductionDomain(int newBasicAngleOfTheInitialProductionDomain) {
		int oldBasicAngleOfTheInitialProductionDomain = basicAngleOfTheInitialProductionDomain;
		basicAngleOfTheInitialProductionDomain = newBasicAngleOfTheInitialProductionDomain;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE34__BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN, oldBasicAngleOfTheInitialProductionDomain, basicAngleOfTheInitialProductionDomain));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getSubdivisionsOfBasicAngle() {
		return subdivisionsOfBasicAngle;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSubdivisionsOfBasicAngle(int newSubdivisionsOfBasicAngle) {
		int oldSubdivisionsOfBasicAngle = subdivisionsOfBasicAngle;
		subdivisionsOfBasicAngle = newSubdivisionsOfBasicAngle;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE34__SUBDIVISIONS_OF_BASIC_ANGLE, oldSubdivisionsOfBasicAngle, subdivisionsOfBasicAngle));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getResolutionAndComponentFlags() {
		return resolutionAndComponentFlags;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setResolutionAndComponentFlags(byte newResolutionAndComponentFlags) {
		byte oldResolutionAndComponentFlags = resolutionAndComponentFlags;
		resolutionAndComponentFlags = newResolutionAndComponentFlags;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE34__RESOLUTION_AND_COMPONENT_FLAGS, oldResolutionAndComponentFlags, resolutionAndComponentFlags));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getScanningMode() {
		return scanningMode;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setScanningMode(byte newScanningMode) {
		byte oldScanningMode = scanningMode;
		scanningMode = newScanningMode;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE34__SCANNING_MODE, oldScanningMode, scanningMode));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public long getListOfLongitudeOffset() {
		return listOfLongitudeOffset;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setListOfLongitudeOffset(long newListOfLongitudeOffset) {
		long oldListOfLongitudeOffset = listOfLongitudeOffset;
		listOfLongitudeOffset = newListOfLongitudeOffset;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE34__LIST_OF_LONGITUDE_OFFSET, oldListOfLongitudeOffset, listOfLongitudeOffset));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public long getListOfLatitudeOffset() {
		return listOfLatitudeOffset;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setListOfLatitudeOffset(long newListOfLatitudeOffset) {
		long oldListOfLatitudeOffset = listOfLatitudeOffset;
		listOfLatitudeOffset = newListOfLatitudeOffset;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE34__LIST_OF_LATITUDE_OFFSET, oldListOfLatitudeOffset, listOfLatitudeOffset));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object eGet(int featureID, boolean resolve, boolean coreType) {
		switch (featureID) {
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__NUMBER_OF_POINTS_ALONG_APARALLEL:
				return getNumberOfPointsAlongAParallel();
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__NUMBER_OF_POINTS_ALONG_AMERIDIAN:
				return getNumberOfPointsAlongAMeridian();
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN:
				return getBasicAngleOfTheInitialProductionDomain();
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__SUBDIVISIONS_OF_BASIC_ANGLE:
				return getSubdivisionsOfBasicAngle();
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__RESOLUTION_AND_COMPONENT_FLAGS:
				return getResolutionAndComponentFlags();
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__SCANNING_MODE:
				return getScanningMode();
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__LIST_OF_LONGITUDE_OFFSET:
				return getListOfLongitudeOffset();
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__LIST_OF_LATITUDE_OFFSET:
				return getListOfLatitudeOffset();
		}
		return super.eGet(featureID, resolve, coreType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eSet(int featureID, Object newValue) {
		switch (featureID) {
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__NUMBER_OF_POINTS_ALONG_APARALLEL:
				setNumberOfPointsAlongAParallel((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__NUMBER_OF_POINTS_ALONG_AMERIDIAN:
				setNumberOfPointsAlongAMeridian((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN:
				setBasicAngleOfTheInitialProductionDomain((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__SUBDIVISIONS_OF_BASIC_ANGLE:
				setSubdivisionsOfBasicAngle((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__RESOLUTION_AND_COMPONENT_FLAGS:
				setResolutionAndComponentFlags((Byte)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__SCANNING_MODE:
				setScanningMode((Byte)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__LIST_OF_LONGITUDE_OFFSET:
				setListOfLongitudeOffset((Long)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__LIST_OF_LATITUDE_OFFSET:
				setListOfLatitudeOffset((Long)newValue);
				return;
		}
		super.eSet(featureID, newValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eUnset(int featureID) {
		switch (featureID) {
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__NUMBER_OF_POINTS_ALONG_APARALLEL:
				setNumberOfPointsAlongAParallel(NUMBER_OF_POINTS_ALONG_APARALLEL_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__NUMBER_OF_POINTS_ALONG_AMERIDIAN:
				setNumberOfPointsAlongAMeridian(NUMBER_OF_POINTS_ALONG_AMERIDIAN_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN:
				setBasicAngleOfTheInitialProductionDomain(BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__SUBDIVISIONS_OF_BASIC_ANGLE:
				setSubdivisionsOfBasicAngle(SUBDIVISIONS_OF_BASIC_ANGLE_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__RESOLUTION_AND_COMPONENT_FLAGS:
				setResolutionAndComponentFlags(RESOLUTION_AND_COMPONENT_FLAGS_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__SCANNING_MODE:
				setScanningMode(SCANNING_MODE_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__LIST_OF_LONGITUDE_OFFSET:
				setListOfLongitudeOffset(LIST_OF_LONGITUDE_OFFSET_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__LIST_OF_LATITUDE_OFFSET:
				setListOfLatitudeOffset(LIST_OF_LATITUDE_OFFSET_EDEFAULT);
				return;
		}
		super.eUnset(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean eIsSet(int featureID) {
		switch (featureID) {
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__NUMBER_OF_POINTS_ALONG_APARALLEL:
				return numberOfPointsAlongAParallel != NUMBER_OF_POINTS_ALONG_APARALLEL_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__NUMBER_OF_POINTS_ALONG_AMERIDIAN:
				return numberOfPointsAlongAMeridian != NUMBER_OF_POINTS_ALONG_AMERIDIAN_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN:
				return basicAngleOfTheInitialProductionDomain != BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__SUBDIVISIONS_OF_BASIC_ANGLE:
				return subdivisionsOfBasicAngle != SUBDIVISIONS_OF_BASIC_ANGLE_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__RESOLUTION_AND_COMPONENT_FLAGS:
				return resolutionAndComponentFlags != RESOLUTION_AND_COMPONENT_FLAGS_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__SCANNING_MODE:
				return scanningMode != SCANNING_MODE_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__LIST_OF_LONGITUDE_OFFSET:
				return listOfLongitudeOffset != LIST_OF_LONGITUDE_OFFSET_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE34__LIST_OF_LATITUDE_OFFSET:
				return listOfLatitudeOffset != LIST_OF_LATITUDE_OFFSET_EDEFAULT;
		}
		return super.eIsSet(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		if (eIsProxy()) return super.toString();

		StringBuffer result = new StringBuffer(super.toString());
		result.append(" (numberOfPointsAlongAParallel: "); //$NON-NLS-1$
		result.append(numberOfPointsAlongAParallel);
		result.append(", numberOfPointsAlongAMeridian: "); //$NON-NLS-1$
		result.append(numberOfPointsAlongAMeridian);
		result.append(", basicAngleOfTheInitialProductionDomain: "); //$NON-NLS-1$
		result.append(basicAngleOfTheInitialProductionDomain);
		result.append(", subdivisionsOfBasicAngle: "); //$NON-NLS-1$
		result.append(subdivisionsOfBasicAngle);
		result.append(", resolutionAndComponentFlags: "); //$NON-NLS-1$
		result.append(resolutionAndComponentFlags);
		result.append(", scanningMode: "); //$NON-NLS-1$
		result.append(scanningMode);
		result.append(", listOfLongitudeOffset: "); //$NON-NLS-1$
		result.append(listOfLongitudeOffset);
		result.append(", listOfLatitudeOffset: "); //$NON-NLS-1$
		result.append(listOfLatitudeOffset);
		result.append(')');
		return result.toString();
	}

	/* (non-Javadoc)
	 * @see org.mro.grib.model.files.secondEdition.grids.impl.EarthShapeGridDefinitionImpl#initialise(java.nio.ByteBuffer)
	 */
	@Override
	public void initialise(ByteBuffer buffer) {
		super.initialise(buffer);
		numberOfPointsAlongAParallel = buffer.getInt();
		numberOfPointsAlongAMeridian = buffer.getInt();
		basicAngleOfTheInitialProductionDomain = buffer.getInt();
		subdivisionsOfBasicAngle = buffer.getInt();
		resolutionAndComponentFlags = buffer.get();
		scanningMode = buffer.get();
		listOfLongitudeOffset = buffer.position();
		listOfLatitudeOffset = listOfLongitudeOffset + (Integer.SIZE / Byte.SIZE) * numberOfPointsAlongAParallel;
	}
	
} //GridDefinitionTemplate34Impl
